package Automatas;

import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;

public class Main {
	
	static ArrayList<String> Errores = new ArrayList<String>();
	static ArrayList<Componente> TablaSimbolos = new ArrayList<Componente>();
	static int cont_linea;
	static int indice;
	static int estado=0;
	static Reconocedor reconocedor = new Reconocedor();


	public static void main(String[] args) {
		
		char[] cadena;
		File f = new File("prueba.txt");
		
		
		try {
			
			Scanner lector = new Scanner(f);			
			
			while(lector.hasNext()){
				cadena=(lector.nextLine()+" ").toCharArray();
				
				System.out.println("length: "+cadena.length);
				
				cont_linea++;
				
				
				indice=0;/*
				while(indice != cadena.length){					
					
					switch(estado){
										
					case 0:
						if (reconocedor.Identificador(cadena)){
							estado=0;
							//indice=reconocedor.getIndice();
						}else{
							estado=1;
						} 
						break;
						
					case 1:
						if(reconocedor.IdentificadorMF(cadena)){
							estado=0;
							//indice=reconocedor.getIndice();
						}else{
							estado=2;
						}
						break;
												
					case 2:
						if(reconocedor.Flotante(cadena)){
							estado=0;
							//indice=reconocedor.getIndice();
						}else{
							estado=3;
						}
						break;
						
					case 3:						
						if(reconocedor.Entero(cadena)){
							estado=0;
							//indice=reconocedor.getIndice();
						}else{
							estado=4;
						}
						break;
						
					case 4:						
						if(reconocedor.Caracter(cadena)){
							estado=0;
							//indice=reconocedor.getIndice();
						}else{
							estado=5;
						}
						break;
						
					case 5:						
						if(reconocedor.Cadenas(cadena)){
							estado=0;
							//indice=reconocedor.getIndice();
						}else{
							estado=6;
						}
						break;
						
					case 6:
						if(reconocedor.OperadoresAritmeticosIncremento(cadena)){
							estado=0;
							//indice=reconocedor.getIndice();
						}else{
							estado=7;
						}
						break;
						
					case 7:
						if(reconocedor.OperadoresRacionalesAsignacion(cadena)){
							estado=0;
							//indice=reconocedor.getIndice();
						}else{
							estado=8;
						}
						break;
						
					case 8:
						if(reconocedor.OperadoresLogicos(cadena)){
							estado=0;
							//indice=reconocedor.getIndice();
						}else{
							estado=9;
						}
						break;
						
					case 9:
						if(reconocedor.SimbolosEspeciales(cadena)){
							estado=0;
							//indice=reconocedor.getIndice();
						}else{
							estado=10;
						}break;
											
					}
					
				}*/
				
				
			}
			
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		

	}

}
/*
 * leer por linea del archivo
 * 
 * while(lee linea){
 * char cadena
 * estado=0
 * incrementar cont_linea
 * }
 * 
 * indice static
 * cont_linea static
 * arraylist errores(string) y tabla simbolos(componentes)
 * objeto reconocedor
 * 
 * 
 */